许嘉明、张海岳
近年来,世界各地的火灾事故造成的严重后果都表明消防人员迫切需要新型消防技术的开发与应用,以最大程度上保护消防人员的人身安全,并且增加对于各种类型火灾的应对方法。同时我国青少年身体健康素质仍需提高,缺乏一种适合青少年体育锻炼或运动员训练的新型设备。而在国防方面,自动炮台也可以作为一个新方向得到应用。因此本项目聚焦于目标的自动识别与追踪发射展开。
通过在互联网上收集相关视频图形,并进行食品分类标注。标注后在华为ModelArts机器学习云计算平台上使用YOLO v3 – Resnet18模型进行深度神经网络训练。在ModelArts上进行在线测试,随后将此模型部署在HiLens智能终端上。识别到目标后,,Arudnio单片机进行控制,舵机调整发射角度方向,使用电磁推杆与双无刷电机飞轮结构对目标发射。
关键词:图像识别、深度神经网络、华为云、单片机、舵机、发射装置
目录
概论
项目研究背景和意义
近年来,世界各地的火灾事故造成的严重后果都表明消防人员迫切需要新型消防技术的开发与应用,以最大程度上保护消防人员的人身安全,并且增加对于各种类型火灾的应对方法。同时我国青少年身体健康素质仍需提高,缺乏一种适合青少年体育锻炼或运动员训练的新型设备。而在国防方面,自动炮台也可以作为一个新方向得到应用。因此本项目聚焦于目标的自动识别与追踪发射展开。
研究内容与目标
本课题围绕目标的识别与追踪发射两个部分。前者首先在网络上进行图片数据采集;其次借助华为云平台,进行数据集标注、作业训练以及模型部署上线;最后通过om机器学习模型文件的转化、上传以及HiLens技能的部署来实现。后者利用前者识别得到的坐标对发射器的角度进行调整瞄准后进行定向发射。
本课题旨在基于HiLens,通过AI的图像识别进行全局化的扫描,进行目标识别,并向其发射。
研究创新点
1.本产品使用电磁推杆与双飞轮结构的发射系统与舵机,使得发射装置可大范围转动并发射,在射速高,射程远的同时降低生产成本,生产工艺简单。
2.本产品使用了以自动识别程序控制的单片机,能做到填装发射物后全自动追踪发射,操作简便,同时只需重写自动识别程序并且更换飞轮即可应用于消防,体育,国防等多个领域,应用前景广。
3.考虑到实际使用需求,本产品也可以进行手动远程遥控,操作方式多样,能应对各种突发情况。
1.4具体实施方法
为了解决上述技术要求,创新作品中在技术方案方面作了以下设计:
通过运用无刷电机及飞轮,3d打印技术搭建飞轮仓,电磁推杆作为推动发射物进入飞轮仓的装置,Arudnio单片机作为总体控制来实现完整的发射机构,发射物从储弹仓进入飞轮仓实现发射;
利用摄像头进行图像采集,从视频帧中识别物体坐标并输出数据;
利用单片机结合输出的数据,控制舵机机构调整发射机构的角度追踪坐标瞄准物体进行发射;
利用三根60*60*200mm的木制方柱进行切割搭建发射装置支架,在两角分别切削将方柱拼接,分别打入三根70mm的沉头螺丝进行固定,上方加两块木制三角将顶面调平,在顶面上方安装所需机构。
本创新作品实际效果:通过实践使用,本作品有效解决消防安全系数效率低、体育训练器材缺乏等问题,并在国防方面作为自动炮台也有发展前景,从而实现多功能可运用到各方面的自动追踪发射装置,成本低廉,效果显著。
2.控制电路设计及工作原理
2.1控制电路设计构思
2.2关于舵机部分的简介论述
①舵机的工作原理及构造
普通舵机有一个三线的接口,黑色线接地,红线接+5V电压,黄线(或白色)接信号控制端。一般情况下,舵机的输出轴都偏向一边,其驱动力来自直流电机,通过变速齿轮的传动和变速,将动力传输到输出轴,同时,舵机内部设有角度传感器和控制电路板,用来参与舵机的转动角度的控制和信号反馈检测。选用的360度舵机一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。
②PWM信号与360舵机转速的关系:
0.5ms----------------正向最大转速;
1.5ms----------------速度为0;
2.5ms----------------反向最大转速;
拿到那种360度旋转电机的时候,首先就是调零,接VCC、GND,然后用波形发生器产生一个周期20MS、高电平1.5MS的波形去调零
(选自博客)
③产品的结构简介
总述:通过三个舵机的相互配合,实现简单机械臂结构的上下、以致接近球面角度的覆盖范围。
分述:支架上固定一个360度舵机,并通过圆孔将舵机驱动部分与底座相连,在与arduino控制板串口连接和,可基本实现使底座在水平方向转动一定角度或360度。接着在底座上固定两根竖直杆臂,分别在顶端固定一个舵机,并用另两个杆臂钻孔,分别安装于舵机驱动部分,并将两舵机并联连接(或连接串口后用以相同程序),使得两舵机在不同时刻转动的角度相同,上方两杆臂始终保持平行状态,以便将来安置设备,而上方两舵机的程序设置,只需使其在0~180度旋转即可。以上可通过同一控制板实现。程序编写可有先后之分,如:传感器确定方位后,先由下方舵机转动,转向正面(提前规定),而后再控制上方舵机进行上下方位的移动,完成锁定。
“自动识别追踪多功能发射装置”舵机部分侧面示意图
“自动识别追踪多功能发射装置”舵机部分背面示意图
2.3“自动识别追踪多功能发射装置”的安装
发射部分结构示意图
电磁推杆部分电路连接示意图
支架部分结构示意图
3.模型测试与训练
3.1 ModelArts云计算平台
ModelArts是华为开发的一款云计算平台,用户可以在自己的电脑上通过云端部署的机器学习平台进行机器学习与深度学习的训练。
功能上,ModelArts提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成及端-边-云模型按需部署能力。其中包括数据处理、算法开发、模型训练、模型部署都可以在ModelArts上完成,给用户提供了良好平台与操作便利。技术上ModelArts底层支持各种异构计算资源,可以根据需要灵活选择使用。此外还支持Tensorflow、MXNet等主流开源的AI开发框架,与开发者使用自研的算法框架。
应用范围上,ModelArts支持应用到图像分类、物体检测、视频分析、语音识别、产品推荐、异常检测等多种AI应用场景。[3]
图2-1 华为ModelArts人工智能云计算平台
3.2 YOLO v3 - Resnet18模型
YOLO v3是YOLO算法的升级版,于2018年由华盛顿大学的Joseph Redmon 与 Ali Farhadi的论文《YOLO v3: An Incremental Improvement》首次发表。此模型主要用于定位图像中的物体以及识别物体的类别[4],其模型结构见图2.2。
图2-2 YOLO v3模型示意图[5]
YOLO v3 - Resnet18使用Resnet18作为其主干网络,在ModelArts中此算法适配了后续我们需要使用的HiLens端侧硬件中Ascend芯片的算子。
此算法针对提供带有物体框标注的数据集,载入在ResNet18预训练模型,训练后生成的模型可直接在ModelArts平台部署成在线服务,同时支持使用CPU和GPU规格进行推理。其任务类型为物体检测,支持的框架引擎为Tensorflow-1.13.1-python3.6。在算法输入中,可在ModelArts平台选择性使用数据切分功能。在算法输出中,具备用于转换Ascend格式模型的Frozen_PB模型与用于TF-Serving推理的saved_model模型。
3.3 数据集准备
本课题中的数据集主要来自于网络图库。在选取过程中,对于火焰选择了各个形态、不同角度以及颜色略有差异的图片,平均样本数为100张,这可使AI识别图像的过程中可以提高辨识的准确率。
在图片的标注过程中,首先将图片从网页下载后上传到华为云obs存储器,再将obs中的文件上传到华为云的ModelArts平台。接着对于火焰区域进行方框的框选以及标签的标注,标注过程中对数据集进行了9次的补充与更新,将数据集进行了数量扩充且精准细化了标注区域。
3.4模型训练的次数以及模型在线测试效果
模型分别进行了Retina、YOLOv3、Faster-RCNN等的不同算法的多次训练以及在线测试。模型训练中采用80%学习、20%检验的比例,保证训练预测结果准确。
在线测试的结果中,首先放入原有标注图像的识别,准确率大约维持在75%,对于初始标注的标签数可以识别到80%左右。之后放入未有标注过的图片,识别的准确率平均为58%。
4. HiLens端侧模型部署与测试
4.1 HiLens介绍
华为HiLens作为端云协同多模态的AI开发应用平台,它提供了简单的开发框架,预置的开发环境,丰富的AI技能,可以灵活对接多终端侧计算设备等等。通常被应用在智能监控与无人车、机器人等方面,可以解决AI开发使用过程中的多项挑战。[6]
图3-1 华为HiLens Kit终端
4.2 HiLens初始化设置
对HiLens进行在云端的注册工作:首先在网络与共享中心中选择更改适配器设置,在以太网属性中,更改本机IP地址与子网掩码。然后登陆华为HiLens平台进行无线网络的链接。
接着使用MobaXterm连接HiLens默认IP地址:192.168.2.111,通过计算机进行SSH通信。进入HiLens开发模式,修改HiLens时区,最后在华为云中连接在线设备即为注册成功。
4.3 HiLens模型部署
由于最初在ModelArts上训练得出的模型是TensorFlow模型,我们需要将其转换为HiLens可以识别的om模型:将相关文件上传至obs的相同根目录中,然后在HiLens的管理控制台上,选择obs桶中om模型文件,进行模型的导入与转换。
之后进行在导入模型上的技能开发,在新建技能中选择相应的模型,完成模型的HiLens部署。
图3-2 华为HiLens云端操控页面
4.4 HiLens技能部署
由于系统自动生成的“index.py”与实际具有差异性,所以针对使用的模型进行修改。首先在index.py 中将文件名更改为生成的模型文件,在初始化模型的“model_path”中更改为最后版本的模型。其次在obs中选择生成的“utils.py”进行导入,并且在“检测模型的类别”一栏中编辑。
图3-3
4.5 HiLens实机模型测试
在HiLens的实机模型测试中,首先遇到的问题是运行失败。在检查后确定没有代码错误与操作失误的前提下,尝试在“utils.py”文件中加上了一组名为“null”的标签,最终方运行成功。猜测原因是YOLO v3模型对于标签的奇偶有一定限制,奇数时方可运行。
可以识别并框选出单张图中60%左右的单个火焰区域。对于无杂物遮挡、轮廓明显的火焰识别度高。站在单张图片测试的角度,对于原先已标注的图片再识别率约为75%,并且没有错认的现象。对于新图片的识别准确率约为58%,有一定的无法识别与错认现象。
5.总结与展望
在本次课题的学习中,就项目成果而言,实现了基本的目标识别与发射;就学习课题的总过程中而言,掌握了Python的基础知识与一部分神经网络、经典模型。对于运用华为云平台上实现图片检测的标注数据集、训练、模型部署以及HiLens的调配使用可以较为熟练地应用;对于长期发展而言,对于研究性课题的基本步骤与思维方式有了初步认知与体会。
此课题首先目标种类不够多样,下一次可对数据集扩充与标签细化;其次识别的准确度主要依赖于目标(火焰)的总体特征,包括总形态与颜色。然而对于某些复杂的图片,例如有遮挡、杂物等干扰因素存在时,识别准确度会受影响,因此下一步可以思考优化对于细节的识别从而做到更准确的细分;目前识别的途径仅限于图像识别,然而针对不同的目标仍有其它识别方式可进行辅助,从而提高准确度,如红外传感器、温度传感器等等,因此下一步可以思考从多个角度对目标位置进行确定。
虽然该项目在许多方面仍然具有欠缺,但由于其高度的灵活性与广阔的应用场景,仍具有其意义与成效。
6、引用文献
[1] ModelArts_AI开发平台_机器学习_深度学习_EI企业智能-华为云.[EB/OL]. [2020-08-16].https://www.huaweicloud.com/product/modelarts.html
[2] Redmon J , Farhadi A . YOLOv3: An Incremental Improvement[J]. arXiv e-prints, 2018.
[3] yolo系列之yolo v3【深度解析】_木盏-CSDN博客_yolov3.[EB/OL]. [2020-08-25]. https://muzhan.blog.csdn.net/article/details/82660381
[4] AI应用开发平台_深度学习应用开发_HiLens_AI应用在线部署-华为云.[EB/OL]. [2020-08-26]. https://www.huaweicloud.com/product/hilens.html
| 序号 | 图片 | 名称 | 详细说明 | 
| 1 | 模拟缩比发射物 | 模拟球状发射物,可替换为其他所需发射物。 | |
| 2 | 舵机 | 控制发射装置调整角度。 | |
| 3 | 电磁推杆 | 可在电磁铁的作用下前后往复运动,推动发射物进入飞轮仓。 | |
| 4 | 无刷电机及飞轮*2 | 两个无刷电机转轴上安装3d打印制作的飞轮,用来发射模拟发射物 | |
| 5 | Arduino单片机 | 单片机是发射机构及追踪机构的控制基础,控制各部件。 | |
| 6 | 飞轮仓 | 两个空位安装无刷电机及飞轮,中间部分发射物通过进行加速发射。 | |
| 7 | 三脚微动开关 | 控制各类元件的开关。 | 
图16
图17
图18